There are two general methods of sending messages when communicating. One method may comprise sending messages and data without regard to whether they are received, which is referred to as unreliable delivery. The other method may comprise sending messages and data with some methodology ensuring that the sent messages are received, which is referred to as reliable delivery. An example of unreliable delivery is the typical mail sent via US Post Office's first class, second class, or third class services. In this regard, mail may be sent but there is no way to know if the mail has been received. Another common example may be radio or television broadcasts where the broadcasting station sends out signals but has no intelligence to determine whether anybody is receiving the signals. A networking example may involve the user datagram protocol (UDP), a connectionless transport protocol, which is sometimes used in Internet data transfers by applications for email or file transfer. The UDP makes no attempts to verify that a sent packet was actually received by an intended recipient. The UDP's task is finished when it places a packet on a network with a destination address. The application program that used the UDP may ensure reliable delivery with a higher-level protocol.
In contrast, there is another protocol, which is utilized for most Internet transmissions, namely, transmission control protocol (TCP). TCP provides reliable transmission of data by providing connection-oriented, end-to-end reliable packet delivery through a network or through the Internet. It does this by assigning sequence numbers to packets to indicate to the destination the number of packets and the order of the packets that may be received. The destination acknowledges receipt of each packet and packets that are not acknowledged within a specified time period are retransmitted. If the destination does not receive an expected packet within a specified time, it may request that the packet be resent. The reliability mechanism of TCP allows devices to deal with lost, delayed, duplicate, or misread packets.
Electronic systems, such as personal computers (PCs), use both reliable and unreliable messaging systems to transmit data. A typical bus on the PC is an unreliable delivery system—a sender places data on the bus and assumes that the destination will receive the data. An example of a reliable delivery system used by the PC is the IEEE 1284 parallel port standard, often used for communication between a PC and a printer. The PC places a byte of data on the parallel port and asserts a strobe signal. The printer may receive the data and answer the strobe signal by asserting an acknowledge signal. The host may then deassert the strobe signal, place another byte on the parallel port, and reassert the strobe signal. This type of signal exchange for data delivery may be called handshaking.
When multiple transmitters and receivers that use handshaking signals are coupled via a switchable circuitry, a receiver may switch to receive from a different transmitter from time to time. This may happen, for example, when different data from a different channel may be desired. In that event, the transmitter from which the receiver just switched may have backed up data that still needs to be sent. If another receiver connects to this transmitter, the new receiver may get garbage data.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.